#pragma once
#include "ISound.h"

namespace Sound{
	class ISoundSystem : public Core::MemTrack{
	public:
		ISoundSystem(){}
		virtual ~ISoundSystem(){}

		virtual void loadSoundDB(std::string folder) = 0;
		
		void playSound(std::string name, bool loop);
		void stopPlayingSound(std::string name);

		virtual bool update() = 0;
	protected:
		virtual bool initialize() = 0;
		virtual void finalize() = 0;

		std::map<std::string,ISoundPtr> m_playingSounds;
		std::map<std::string,ISoundPtr> m_soundDB;
	};
}

typedef boost::shared_ptr<Sound::ISoundSystem> SoundSystemPtr;